PAE PMDs must be made writable before freeing.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Tue, 9 Aug 2005 13:08:25 +0000 (13:08 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Tue, 9 Aug 2005 13:08:25 +0000 (13:08 +0000)
linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c

index ffe3ca561a0f3407d9c78951ff70d8b2be727051..79b4c2b79f90dbdf1aad785c23e38d2ac0e8344c 100644 (file)
@@ -359,6 +359,7 @@ void pgd_free(pgd_t *pgd)
        if (PTRS_PER_PMD > 1) {
                for (i = 0; i < USER_PTRS_PER_PGD; ++i) {
                        pmd_t *pmd = (void *)__va(pgd_val(pgd[i])-1);
+                       make_page_writable(pmd);
                        kmem_cache_free(pmd_cache, pmd);
                }
                if (!HAVE_SHARED_KERNEL_PMD) {